package com.engineering.elink.service;

import java.util.Map;

import com.engineering.elink.co.VideoCommentCo;
import com.zxy.core.co.BaseCo;

/**
 * 
 * 视频评论业务操作接口
 * 
 * ClassName: VideoCommentService <br/> 
 * Function: ADD FUNCTION. <br/> 
 * Reason: ADD REASON(可选). <br/> 
 * date: 2016年10月20日 下午4:17:59 <br/> 
 * 
 * @author zengxinyan 
 * @version  
 * @since JDK 1.8
 */
public interface VideoCommentService {

	/**
	 * 
	 * 分页获取视频的一级评论
	 * 
	 * getTopCommentsByVideoId:(这里用一句话描述这个方法的作用). <br/> 
	 * (这里描述这个方法适用条件 – 可选).<br/> 
	 * (这里描述这个方法的执行流程 – 可选).<br/> 
	 * (这里描述这个方法的使用方法 – 可选).<br/> 
	 * (这里描述这个方法的注意事项 – 可选).<br/> 
	 * 
	 * @author zengxinyan 
	 * @param co
	 * @return 
	 * @since JDK 1.8
	 */
	Map<String, Object> getTopCommentsByVideoId(VideoCommentCo co);



	

	/**
	 * 
	 * 评论顶和踩
	 * 
	 * addPraise:(这里用一句话描述这个方法的作用). <br/> 
	 * (这里描述这个方法适用条件 – 可选).<br/> 
	 * (这里描述这个方法的执行流程 – 可选).<br/> 
	 * (这里描述这个方法的使用方法 – 可选).<br/> 
	 * (这里描述这个方法的注意事项 – 可选).<br/> 
	 * 
	 * @author zengxinyan 
	 * @param evalCommentId
	 * @param praiseType
	 * @param userId
	 * @return 
	 * @since JDK 1.8
	 */
	Map<String, Object> addPraise(Integer evalCommentId,Integer praiseType,String userId);

	/**
	 * 
	 * 通过层级ID获取所有回复的评论
	 * 
	 * getAllCommentsByTopId:(这里用一句话描述这个方法的作用). <br/> 
	 * (这里描述这个方法适用条件 – 可选).<br/> 
	 * (这里描述这个方法的执行流程 – 可选).<br/> 
	 * (这里描述这个方法的使用方法 – 可选).<br/> 
	 * (这里描述这个方法的注意事项 – 可选).<br/> 
	 * 
	 * @author zengxinyan 
	 * @param co
	 * @param topId
	 * @return 
	 * @since JDK 1.8
	 */
	Map<String, Object> getAllCommentsByTopId(BaseCo co, int topId,boolean parentFlag);

	/**
	 * 获取评论我的视频信息
	 * 
	 * getCommentForMe:(这里用一句话描述这个方法的作用). <br/> 
	 * (这里描述这个方法适用条件 – 可选).<br/> 
	 * (这里描述这个方法的执行流程 – 可选).<br/> 
	 * (这里描述这个方法的使用方法 – 可选).<br/> 
	 * (这里描述这个方法的注意事项 – 可选).<br/> 
	 * 
	 * @author zengxinyan 
	 * @param co
	 * @param userId
	 * @return 
	 * @since JDK 1.8
	 */
	Map<String, Object> getCommentForMe(BaseCo co ,String userId);

	/**
	 * 获取我评论的视频信息
	 * 
	 * getMyComment:(这里用一句话描述这个方法的作用). <br/> 
	 * (这里描述这个方法适用条件 – 可选).<br/> 
	 * (这里描述这个方法的执行流程 – 可选).<br/> 
	 * (这里描述这个方法的使用方法 – 可选).<br/> 
	 * (这里描述这个方法的注意事项 – 可选).<br/> 
	 * 
	 * @author zengxinyan 
	 * @param co
	 * @param userId
	 * @return 
	 * @since JDK 1.8
	 */
	Map<String, Object> getMyComment(BaseCo co ,String userId);

}
